【レポート】アプリケーションに BI 機能を埋め込みませんか?簡単で運用負担が少ない Amazon QuickSight の埋め込み機能 #AWS-44 #AWSSummit
こんにちは、岩城です。
普段QuickSightに触る機会が多く、本セッションに興味を持ち視聴しましたのでレポートします。
セッション情報
スピーカー
アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 シニアソリューションアーキテクト 下佐粉 昭(敬称略)
セッション概要
昨今、データを安価に保存する事ができるようになった反面、データ活用がなかなか進まないという課題でお困りの方は多くいらっしゃるようです。AWS の BI サービス、Amazon QuickSight はその改善方法として「BI の埋め込み」を提供します。利用するアプリやイントラネットに分析環境を埋め込む事によって、いつでもデータを確認できる環境を作る事でデータ活用を促進します。SaaS 等の中でもご利用いただけます。また運用負担が少ない事も特徴です。本セッションでは QuickSight の埋め込み機能についてメリットやその方法をご説明します。
- セッションID
- AWS-44-S
- セッションレベル
- 中級者向け
- セッションタイプ
- AWSセッション
- ソリューション
- データレイクと分析|アプリケーション統合
レポート
なぜアプリケーションにBIを埋め込む必要があるのか
- なぜアプリケーションにBIを埋め込む必要があるのか
- 多様なアプリケーションが動き、膨大なデータが日々生み出されている
- このデータをうまく活用できれば、新しいビジネスや発見につながる
- データがただ存在するだけでは難しい
- BIサービスをアプリケーションやイントラネット、SaaSに埋め込むことでデータ分析を促進させる
- BIサービスを別途用意するのではなく、埋め込むことでいつでもデータに触れるようにし、分析できるような環境を用意する
- そうすることで分析の機会を増やし、利活用を促進させる
BIを埋め込む際の課題
- 初期費用
- ハードウェアやライセンス費用など
- 労力と時間
- ハードウェアやソフトウェアのセットアップ
- リソースの準備
- ハードウェアを購入したり、設置したりする準備
- スケールが困難
- BIはユーザによって、どうやった使われ方をするか予測するのが困難
- 急な利用増に対し、ハードウェアが固定であった場合はスケールが困難
- 固定的なライセンス
- CPU数やユーザ数を固定したライセンスだと、急な利用増の場合はスケールが困難
- 高度な分析には高度な知識が必要
- 分析が進むと、予測に使いなどより高度な分析のニーズがでてくる
- 高度な知識や新しいシステムが必要になり、次のフェーズに移行できない課題がでてくる
- これらの課題に対し、AWSはAmazon QuickSightを提供している
- サーバレスであり、利用料に応じた従量課金、誰もが簡単に利用でき、機械学習の機能も提供している
Amazon QuickSightの強み
サーバレスBIのメリット
- サーバレスなので、ユーザはサーバの運用管理を意識しなくて良い
スケーラブルでハイパフォーマンス
- ユーザ数に合わせて自動的にスケールする
- SPICEと呼ばれるインメモリDBを内包している
- 外部のデータソースにデータ取得に行かず、SPICEにデータをロードしておくことで、高速にレスポンスする
- ユーザ数が増えてもデータソースに負担をかけず、一貫したパフォーマンスを提供する
- サーバレスの仕組みの中にSPICEも含まれている
シームレスに埋め込みが可能
- テーマ
- 埋め込み先のイントラネットやSaaSに合わせて、色やフォントを合わせられる
- 埋め込みSDK
- Javascriptライブラリを提供
- 埋め込んだアプリとの連携も可能で、単に埋め込まれているのではなく、シームレスに利用可能
- Single Sign-ON
- QuickSightに直接ログインすることなく、別のところで認証しフェデレーション可能
- AD連携やOktaなどのIdPとの連携も可能
作成機能を埋め込み、さらなる活用を促進する
- QuickSightの大きな特徴は、作成側の機能を埋め込むことができる
- さらに、これらフル機能がWebブラウザだけで利用することができる
- 別途アプリケーションをインストールする必要はない
機械学習ベースの分析を専門家不要で実現
- 応用的な部分で機械学習を使った異常検知もしくは予測する機能を提供している
- ビルトインのアルゴリズムがあるので、ユーザ企業にサイエンティストが居なくても誰でも使える
- ビルトインのアルゴリズムが物足りない場合は、SageMakaerで作ったモデルと連携して利用する
- 自然言語を解釈して可視化するQuickSight Qをプレビューで提供中(現在は英語のみ)
- 一番売上の良い店舗はどこ?と入力すると、画面にそのグラフ表示される
埋め込み:3つのシナリオ
ユーザ認証なしの埋め込み
- シンプルな方法で全ユーザに同じデータ表示されるもの
- ユーザ認証していないのでユーザ管理が不要であり、構築が一番楽になる
- サンプルダッシュボードをAmazon QuickSight Galleryで確認可能
- ユーザがアプリケーションにアクセス
- アプリケーションはアプリケーションサーバへページを要求する
- EC2などで稼働するアプリケーションサーバがQuickSightに対して、
getDashboardEmbedUrl
というAPIを読み出し、埋め込みSign済みURLを取得する- この時IdentityTypeを
ANONYMOUS
を指定することで、認証していないANONYMOUSユーザ用のURLを取得する
- この時IdentityTypeを
- サイン済み埋め込みURLをJavaScript SDKを使ってアプリケーションに埋め込む
- ユーザにQuickSightダッシュボードが埋め込まれたページが返る
認証連携しての埋め込み
- どのユーザが画面を見ているかを認識した上で利用する
- 同じダッシュボードであっても各ユーザにパーソナライズされた情報を出すことができる
- ID認証が必要になるので、イントラネットや会員制SaaS向け
- ユーザがアプリケーションにアクセス
- アプリケーションはアプリケーションサーバへページを要求する
- アプリケーションサーバがIDストアと通信し、ユーザが登録されていれば認証する。登録されていなければ、新規登録するロジックを動かすことも可能
- EC2などで稼働するアプリケーションサーバがQuickSightに対して、
getDashboardEmbedUrl
というAPIを読み出し、特定ユーザID用の埋め込みSign済みURLを取得する- この時IdentityTypeを
IAM
orQUICKSIGHT
を指定することで、特定ユーザID用のURLを取得する - IAMを使った認証認可の仕組みを利用するか、QuickSight独自のID管理の仕組みを利用するか指定する
- この時IdentityTypeを
- サイン済み埋め込みURLをJavaScript SDKを使ってアプリケーションに埋め込む
- ユーザにQuickSightダッシュボードが埋め込まれたページが返る
編集機能の埋め込み
- 自分でデータソースを作成したり、グラフを選択したりして、分析を作成できるBIのフル機能
- 作ったものをダッシュボードにして別のユーザに共有することも可能
- Authorは様々な権限を持つため、必要に応じて機能を制限して利用可能
- あるAuthorはデータセット(データベースの接続)は利用できるが、新規作成、編集、削除できないように制限するなど
- パワーユーザがアプリケーションにアクセス
- アプリケーションはアプリケーションサーバへ編集機能を要求する
- アプリケーションサーバがIDストアと通信し、パワーユーザが登録されていてAuthor権限が確認し認証する
- EC2などで稼働するアプリケーションサーバがQuickSightに対して、
getSessionEmbedUrl
というAPIを読み出し、特定ユーザID用の埋め込みSign済みURLを取得する - サイン済み埋め込みURLをJavaScript SDKを使ってアプリケーションに埋め込む
- ユーザにQuickSightダッシュボードが埋め込まれたページが返る
3つのシナリオ比較
- シナリオはあくまで参考のものであり、これ以外にも実装方法はある
- 例えば、編集機能を利用するのでAuthorのユーザ料金が発生するが、Anonymousで公開するのでReaderはセッション料金で利用するなど
デモ
- Amazon QuickSight Embedded Analyticsにあるユーザ認証なしでAnonymousに公開するデモ
まとめ
- QuickSightを使ったアプリケーションへの埋め込みを紹介した
- QuickSightはサーバレスであるため運用管理コストや利用料金が低い
- ブラウザだけで簡単に使えるため、イントラネット、外部Webサービス、SaaS製品に埋め込んで利用可能
- ユーザによるデータ分析の環境の利活用を促進可能
おわりに
QuickSightをアプリケーションに埋め込むことで得られるメリット、埋め込む場合のシナリオなど、ユーザによる実運用をイメージしやすいセッションでとても勉強になりました。
本エントリがどなたかのお役に立てれば幸いです。